// {{ .Data.GenerateTitle }}
package {{ .Data.Package }}

import (
	"gitee.com/kristas/booting-go/framework"
	"gitee.com/kristas/booting-go/framework/core/statement/types"
)

func init() {
	framework.Component(new(FactoryImpl))
}

type Factory interface {
    {{- range .Data.Beans }}
    Get{{ . }}() {{ . }}{{ end }}
}

type FactoryImpl struct {
	types.Component `name:"{{ .Data.Package }}_factory"`
	{{- range .Data.Beans }}
	{{ . }} {{ . }} `wire:""`{{ end }}
}
{{ range .Data.Beans }}
func (r *FactoryImpl) Get{{ . }}() {{ . }} {
	return r.{{ . }}
}
{{ end }}